; ---------------- CHUONG TRINH 2 TOC DO KHAC NHAU TREN 1 PORT -------------------
;------------                                                     ----------------
; -------------------------DA KIEN TRA VA CHAY RAT OK;----------------------------

$MOD51
	ORG	00H
MAIN:

	MOV	R0,#00H
	mov	r1,#08h   ; THAY DOI KIEU CHOP NHAY (SO LAN LAP CUA KEU CHOP)
STAR1:
;---------
	 MOV	DPTR,#DATADISP1 ; LAY DU LIEU "CHOP NHAY" CHO CHU CHAY O P1
	 MOV	A,R0
	 MOVC	A,@A+DPTR
	 MOV	P0,A
;---------
	MOV	A,R0
	 MOV	DPTR,#DATADISP2 ; LAY DU LIEU "CHOP NHAY" CHO CHU CHAY O P2
	 MOV	A,R0
	 MOVC	A,@A+DPTR
	 MOV	P0,A
;---------
	MOV	A,R0
	 MOV	DPTR,#DATADISP3 ; LAY DU LIEU "CHOP NHAY" CHO CHU CHAY O P3
	 MOV	A,R0
	 MOVC	A,@A+DPTR
	 MOV	P0,A
;---------
	MOV	A,R0
	 MOV	DPTR,#DATADISP0 ; LAY DU LIEU "CHOP NHAY" CHO 4 BIT CAO CUA P0 VI 4 BIT THAP CHAY VIEN
	 MOVC	A,@A+DPTR
	 MOV	P0,A
;---------------------

	LCALL	vien             ; GOI CHUONG TRINH VIEN (TRONG VD NAY TOC DO VIEN NHAN GAP 8 SO VOI CHU)
;---------------------
	INC R0
	djnz r1,STAR1		; QUAY VE KHI CHUA THUC HIEN HET DU LIEU CHO TRUOC

sjmp main				; QUAY VE CHUONG TRINH CHINH

vien:				; CHUONG TRINH VIEN VA DUNG TRO.

	mov	r2,p0		; CAT DU LIEU CUA KIEU CHO CHU DANG CHAY O TREN
	MOV	R4,#00H	; CHOT DU LIEU DAU TIEN CUA VIEN
	MOV	R3,#08H	; SO LAN LAP CUA VIEN
RET_V:
	MOV 	DPTR,#DATAVIEN	;DIA CHI VUNG DU LIEU VIEN
	MOV 	A,R4 			;VI TRI DU LIEU VIEN CAN LAY
	MOVC 	A,@A+DPTR 		;LAY DU LIEU TUONG UNG
	ORL 	A,R2			;CONG DU LIEU CU VAO DU LIEU MOI
	MOV 	P0,A 			;XUAT DU LIEU RA LED 
	
	LCALL DELAY			;GOI THOI GIAN TRE
	INC	R4			;TANG THEN 1 DE LAY DU LIEU KE TIEP CUA VIEN
	DJNZ R3,RET_V		; QUAY VE KHI CHUA QUET THUC HIEN SONG


RET		;QUAY VE KHI THUC HIEN SONG VIEN

;----------- CHUONG TRINH DELAY
delay:
 	MOV R5,#1
DEL1:
	MOV R7,#150
DEL:
	 MOV R6,#200
	DJNZ R6,$
	DJNZ R7,DEL
	DJNZ R5,DEL1
 
  RET
;----------
DATADISP0:
db	00000000b,11110000b,00000000b,11110000b,10000000b,01000000b,00100000b,00010000b


DATADISP1:
db	10000000b,01000000b,00100000b,00010000b,00001000b,00000100b,00000010b,00000001b


DATADISP2:
DB	00000000B,11111111B,00000000B,11111111B,00000000B,11111111B,00000000B,11111111B


DATADISP3:
DB	10000000B,01000000B,00100000B,00010000B,00001000B,00000100B,00000010B,00000001B










DATAVIEN:
DB    0000010B,00000001B,00000100B,00000010B,00000001B,00000100B,00000010B,00000001B




end

